﻿// <copyright file="DataStorageType.cs" company="Sinclair Community College">
// Copyright 2010 Sinclair Community College
// </copyright>
// <originalAuthor>Patrick S. Seymour (patrick.seymour@gmail.com)</originalAuthor>

namespace SinclairCC.AppV
{
    /// <summary>
    /// Indicates the type of the DirectoryPrimary structure.
    /// </summary>
    public enum StructureTypeId : uint
    {
        /// <summary>
        /// Points to a package file data structure.
        /// </summary>
        PACKAGE_FILE = 0x00000001,

        /// <summary>
        /// Points to a package directory data structure.
        /// </summary>
        PACKAGE_DIRECTORY = 0x00000002,

        /// <summary>
        /// Points to a runtime generated file data structure.
        /// </summary>
        RUN_FILE = 0x00000003,

        /// <summary>
        /// Points to a runtime generated directory data structure.
        /// </summary>
        RUN_DIRECTORY = 0x00000004,

        /// <summary>
        /// The corresponding file or directory has been marked as deleted.
        /// </summary>
        /// <remarks>
        /// This actually does not delete the actual file or directory. Rather, it hides the file
        /// or directory from directory enumeration.
        /// </remarks>
        PACKAGE_DELETED = 0x00000005,

        /// <summary>
        /// Empty container.
        /// </summary>
        CONTAINER_EMPTY = 0x00000008,

        /// <summary>
        /// This structure points to a symbolic link.
        /// </summary>
        /// <remarks>
        /// In this case, we cannot use this structure any longer and we need to cast to
        /// _DIRECTORY_STRUCT_SECONDARY structure.
        /// </remarks>
        LINK_DATA = 0x0000000D
    }
}
